 #!/usr/bin/env python
#-*-coding:utf-8-*-

# os_not_supported.py is part of "lemon-py" (http://code.google.com/p/lemon-py/).
# Copyright (C) 2010  - JBC <JBC dot Develop at gmail dot com >

# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

# You should have received a copy of the GNU Lesser General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.


################################################################################
# DOCS
################################################################################

"""Single innstance class and utilities for not suported os"""


################################################################################
# META
################################################################################

__version__ = "0.1"
__license__ = "GPL3"
__author__ = "JBC"
__since__ = "0.1"
__date__ = "2010-06-23"

################################################################################
# IMPORTS
################################################################################

import warnings

import core


################################################################################
# WARNING
################################################################################


_NOT_SUPPORTED_MSG = "singleinstance does not support your os: '%s'" % os.name


################################################################################
# WARNING
################################################################################

warnings.warn(_NOT_SUPPORTED_MSG, Warning)


################################################################################
# CLASS
################################################################################
 
class SingleInstance(core.SingleInstanceBase):
    """Esta clase determina a un OS que no soporta determinar una sola
    instancia pero aun asi permite que la aplicacion corra sin exceptions
    de imports.
    
    """

    def _raise_not_supported_os(self):
        raise core.SingleInstanceError(_NOT_SUPPORTED_MSG,
                                       core.ERROR_OS_NOT_SUPORTED)

    def setup(self, **kwargs):
        self._raise_not_supported_os()

    def isrunning(self):
        self._raise_not_supported_os()

    def __del__(self):
        self._raise_not_supported_os()
        

################################################################################
# MAIN
################################################################################


